/**
 * 
 */
package puzzle.akari.view.swing;

import puzzle.akari.data.AkariBoard;
import puzzle.akari.loader.AkariLoader;
import puzzle.akari.problem.AkariProblemDictionary;
import puzzle.akari.solver.AkariSolver;
import puzzle.common.loader.AbstractLoader;
import puzzle.common.loader.AbstractProblemDictionary;
import puzzle.common.solver.AbstractSolver;
import puzzle.common.view.swing.AbstractPuzzleViewPanel;
import puzzle.common.view.swing.PuzzleSolverAppMetadata;

public class AkariSolverAppMetadata implements PuzzleSolverAppMetadata<AkariBoard> {
	public AbstractLoader<AkariBoard> createLoader() {
		return new AkariLoader();
	}

	public AbstractPuzzleViewPanel<AkariBoard> createPuzzleViewPanel() {
		return new AkariViewPanel();
	}

	public AbstractSolver<AkariBoard, ?, ?> createSolver() {
		return new AkariSolver();
	}

	public AbstractProblemDictionary createBuiltinProblemDictionary() {
		return new AkariProblemDictionary();
	}

	public String getTitle() {
		return "Akari Solver 1.0";
	}
}